// var i;
// var AL_GAME_HUA_GoodsConfig = require("./AL_GAME_HUA_GoodsConfig");
// var c = cc._decorator;
// var l = c.ccclass;
// var u = c.property;
// var p = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.progress_bar = null;
//         t.label_progress = null;
//         t.reward_node = null;
//         t.award_prop = null;
//         t.label_coin = null;
//         t.prop_label = null;
//         t.progress_node = null;
//         t.complete_node = null;
//         t.light_node = null;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.start = function () {
//         this.node.on("touchend", this.handle_event_touch_end, this);
//         this.reward_node.active = !1;
//         cc.tween(this.complete_node)
//             .to(
//                 0.8,
//                 {
//                     scale: 1.06
//                 },
//                 {
//                     easing: "sineIn"
//                 }
//             )
//             .to(
//                 0.8,
//                 {
//                     scale: 1
//                 },
//                 {
//                     easing: "sineOut"
//                 }
//             )
//             .delay(0.8)
//             .union()
//             .repeatForever()
//             .start();
//         cc.tween(this.light_node)
//             .by(5, {
//                 angle: 360
//             })
//             .repeatForever()
//             .start();
//     };
//     t.prototype.shuaxin_jindu = function (e, t) {
//         this.progress_bar.progress = e / t;
//         this.label_progress.string = e + "/" + t;
//         this.complete_node.active = this.progress_bar.progress >= 1;
//         this.progress_node.active = this.progress_bar.progress < 1;
//     };
//     t.prototype.shuaxin_jiangli = function (e) {
//         var t = this;
//         var n = e.Award1;
//         var o = e.Award2;
//         var i = e.Number;
//         this.label_coin.string = "" + n;
//         this.prop_label.string = "" + i;
//         var r = {
//             0: 2,
//             1: 3,
//             2: 4,
//             3: 5,
//             4: 6,
//             5: 7,
//             6: 8
//         }[o];
//         AL_GAME_HUA_GoodsConfig.GoodsConfig.getInstance()
//             .jiazai_tubiao_icon(r)
//             .then(function (e) {
//                 if (cc.isValid(t)) {
//                     t.award_prop.spriteFrame = e;
//                     t.award_prop.addAutoReleaseAssets(e);
//                 }
//             });
//     };
//     t.prototype.xianshi_jiangli = function () {
//         var e = this;
//         this.reward_node.active = !0;
//         this.reward_node.stopAllActions();
//         cc.tween(this.reward_node)
//             .delay(2)
//             .call(function () {
//                 e.reward_node.active = !1;
//             })
//             .start();
//     };
//     t.prototype.handle_event_touch_end = function () {
//         this.progress_bar.progress >= 1 ? this.chuli_lingqu && this.chuli_lingqu() : this.xianshi_jiangli();
//     };
//     __decorate([u(cc.ProgressBar)], t.prototype, "progress_bar", void 0);
//     __decorate([u(cc.Label)], t.prototype, "label_progress", void 0);
//     __decorate([u(cc.Node)], t.prototype, "reward_node", void 0);
//     __decorate([u(cc.Sprite)], t.prototype, "award_prop", void 0);
//     __decorate([u(cc.Label)], t.prototype, "label_coin", void 0);
//     __decorate([u(cc.Label)], t.prototype, "prop_label", void 0);
//     __decorate([u(cc.Node)], t.prototype, "progress_node", void 0);
//     __decorate([u(cc.Node)], t.prototype, "complete_node", void 0);
//     __decorate([u(cc.Node)], t.prototype, "light_node", void 0);
//     return __decorate([l], t);
// })(cc.Component);
// exports.default = p;



// 说明：修正一些变量的命名以提高可读性，使用ES6语法特性对函数进行重写及类字段声明，并保持方法间调用的关系不变。

// 导入AL_GAME_HUA_GoodsConfig模块
const GoodsConfigModule = require("./AL_GAME_HUA_GoodsConfig");

// 引入cc类的装饰器
const { ccclass, property } = cc._decorator;

/** 
 * ProgressManager：进度管理器类，负责管理和更新进度条和奖励显示。 
 * @extends cc.Component
 */
@ccclass
class ProgressManager extends cc.Component {
    // 当前进度条
    @property(cc.ProgressBar)
    progress_bar = null;

    // 显示进度的文字标签
    @property(cc.Label)
    label_progress = null;

    // 奖励节点
    @property(cc.Node)
    reward_node = null;

    // 奖励道具
    @property(cc.Sprite)
    award_prop = null;

    // 显示金币数量的标签
    @property(cc.Label)
    label_coin = null;

    // 显示道具数量的标签
    @property(cc.Label)
    prop_label = null;

    // 进度节点
    @property(cc.Node)
    progress_node = null;

    // 完成节点
    @property(cc.Node)
    complete_node = null;

    // 光效节点
    @property(cc.Node)
    light_node = null;

    /** @override */
    start() {
        // 添加触摸结束事件的监听
        this.node.on("touchend", this.handle_event_touch_end, this);
        
        // 初始化奖励节点为隐藏状态
        this.reward_node.active = false;

        // 完成节点的缩放动画
        cc.tween(this.complete_node)
            .to(0.8, { scale: 1.06 }, { easing: "sineIn" })
            .to(0.8, { scale: 1 }, { easing: "sineOut" })
            .delay(0.8)
            .union()
            .repeatForever()
            .start();

        // 光效节点的旋转动画
        cc.tween(this.light_node)
            .by(5, { angle: 360 })
            .repeatForever()
            .start();
    }

    /**
     * 刷新进度条和进度显示。
     * @param {number} current - 当前进度值。
     * @param {number} total - 总的进度值。
     */
    shuaxin_jindu(current, total) {
        this.progress_bar.progress = current / total;
        this.label_progress.string = `${current}/${total}`;
        this.complete_node.active = this.progress_bar.progress >= 1;
        this.progress_node.active = this.progress_bar.progress < 1;
    }

    /**
     * 更新奖励显示信息。
     * @param {Object} reward - 奖励信息。
     */
    shuaxin_jiangli(reward) {
        const { Award1, Award2, Number: itemNumber } = reward;
        this.label_coin.string = `${Award1}`;
        this.prop_label.string = `${itemNumber}`;
        
        const iconIndex = {
            0: 2,
            1: 3,
            2: 4,
            3: 5,
            4: 6,
            5: 7,
            6: 8
        }[Award2];

        GoodsConfigModule.GoodsConfig.getInstance()
            .jiazai_tubiao_icon(iconIndex)
            .then((icon) => {
                if (cc.isValid(this)) {
                    this.award_prop.spriteFrame = icon;
                    this.award_prop.addAutoReleaseAssets(icon);
                }
            });
    }

    /** 显示奖励并设置一定时间后隐藏 */
    xianshi_jiangli() {
        this.reward_node.active = true;
        this.reward_node.stopAllActions();
        cc.tween(this.reward_node)
            .delay(2)
            .call(() => {
                this.reward_node.active = false;
            })
            .start();
    }

    /** 触摸结束事件处理 */
    handle_event_touch_end() {
        if (this.progress_bar.progress >= 1) {
            this.chuli_lingqu && this.chuli_lingqu();
        } else {
            this.xianshi_jiangli();
        }
    }
}

exports.default = ProgressManager;